home *** CD-ROM | disk | FTP | other *** search
/ World of Video / World of Video.iso / gfxprograms / 3dprograms / rayshade-4.0 / rayfiles / rsdefs / objects / clean.rh.lists < prev    next >
Text File  |  1995-02-13  |  8KB  |  269 lines

  1. /************************************************************************
  2.  *
  3.  *      clean.rh
  4.  *
  5.  *      This is an #include file for the Rayshade Standard Header
  6.  *      Files.  It defines the "clean" superprimitives in the package.
  7.  *
  8.  *      Please do not edit this file, or any of the other files in
  9.  *      this package!  Make additions to these in your own separate
  10.  *      file.  If you think you have something that should be added
  11.  *      permanently, please send it to Larry Coffin and/or David
  12.  *      DeBry (email addresses listed below).  If we include it in
  13.  *      the next release, we'll put your name in the contributor's
  14.  *      list.
  15.  *
  16.  *      Contributors (in alphabetical order):
  17.  *          Larry Coffin <lcoffin@clciris.chem.umr.edu>
  18.  *        Craig Kolb <cek@Princeton.EDU>
  19.  *          David DeBry <ddebry@dsd.es.com>
  20.  *          Stuart Warmink <sw@groucho.att.com>
  21.  */
  22.  
  23.  
  24. #ifndef RSHF_CLEAN
  25. #define RSHF_CLEAN
  26.  
  27. #include "rounded.rh"
  28.  
  29. #define RSPtoothbrush(prefix, surf)                    \
  30. RSProundedbox(name RSPtb_handle_tmp, -5.5, -.5, -.4, 5.5, .5, .4, .2)    \
  31.                                     \
  32. name RSPtb_handle object RSPtb_handle_tmp                \
  33.     translate -5.5 0 0                        \
  34.                                     \
  35. name RSPtb_basic_cone                            \
  36.     list                                \
  37.     disc (.4/ cos(dtor*13))  0 0 0  -1 0 0                \
  38.     cone (.4/ cos(dtor*13))     0 0 0                    \
  39.          (.25/ cos(dtor*13)) 5 0 0                    \
  40.     disc (.25/ cos(dtor*13)) 5 0 0   1 0 0                \
  41.     end                                    \
  42.                                     \
  43. name RSPtb_extension object RSPtb_basic_cone                \
  44.     scale 1 1.25 1                            \
  45.     rotate 0 1 0  13                            \
  46.     translate (-0.2 - (0.4*tan(dtor*13))) 0 0                \
  47.                                     \
  48. name RSPtb_basic_cylinder                        \
  49.     list                                \
  50.     disc 1  1 0 0  1 0 0                        \
  51.     cylinder 1  1 0 0  -1 0 0                    \
  52.     disc 1  -1 0 0  -1 0 0                        \
  53.     end                                    \
  54.                                     \
  55. name RSPtb_head_end                            \
  56.     union                                \
  57.     torus    0.6 0.25    0 0 0    0 0 1                \
  58.     object    RSPtb_basic_cylinder                    \
  59.         scale    0.25 0.6 0.6                    \
  60.         rotate    0 0 1    90                    \
  61.         rotate    1 0 0    90                    \
  62.     end                                    \
  63.                                     \
  64. name RSPtb_head_middle                            \
  65.     union                                \
  66.     box 1.0 0.6 0.25  -1.0 -0.6 -0.25                \
  67.     list                                \
  68.         object RSPtb_basic_cylinder                    \
  69.         scale 1.0  0.25 0.25                    \
  70.         translate 0 0.6 0                    \
  71.         object RSPtb_basic_cylinder                    \
  72.         scale 1.0  0.25 0.25                    \
  73.         translate 0 -0.6 0                    \
  74.     end                                \
  75.     end                                    \
  76.                                     \
  77. name RSPtb_head_body                            \
  78.     union                                \
  79.     object RSPtb_head_middle                    \
  80.     list                                \
  81.         object RSPtb_head_end                    \
  82.         translate    1.0 0 0                    \
  83.         object RSPtb_head_end                    \
  84.         translate    -1.0 0 0                \
  85.     end                                \
  86.     end                                    \
  87.                                     \
  88. name RSPtb_bristle                            \
  89.     object RSSbristle_white() RSPtb_basic_cylinder            \
  90.     scale 0.7 0.13 0.13                        \
  91.     rotate 0 1 0 90                            \
  92.     translate 0 0 0.7                        \
  93.     texture bump 1 scale .01 .01 10                    \
  94.                                     \
  95. name RSPtb_bristle_set                            \
  96.     list                                \
  97.     object    RSPtb_bristle    translate     0.2 -0.5 0        \
  98.     object    RSPtb_bristle    translate     0.2  0.5 0        \
  99.     object    RSPtb_bristle    translate     0.2  0.0 0        \
  100.     object    RSPtb_bristle    translate     0.4 -0.25 0        \
  101.     object    RSPtb_bristle    translate     0.4  0.25 0        \
  102.     end                                    \
  103.                                     \
  104. name    RSPtb_bristles                            \
  105.     list                                \
  106.     object    RSPtb_bristle_set                    \
  107.     object    RSPtb_bristle_set    translate     0.4 0 0    \
  108.     object    RSPtb_bristle_set    translate     0.8 0 0    \
  109.     object    RSPtb_bristle        translate     1.4 0 0    \
  110.     object    RSPtb_bristle_set    translate    -0.4 0 0    \
  111.     object    RSPtb_bristle_set    translate    -0.8 0 0    \
  112.     object    RSPtb_bristle_set    translate    -1.2 0 0    \
  113.     object    RSPtb_bristle        translate    -1.2 -0.25 0    \
  114.     object    RSPtb_bristle        translate    -1.2  0.25 0    \
  115.     end                                    \
  116.                                     \
  117. name     RSPtb_head                            \
  118.     list                                \
  119.     difference                            \
  120.         object    RSPtb_head_body                    \
  121.         object    RSPtb_bristles                    \
  122.         scale        1.001 1.001 1.001            \
  123.     end                                \
  124.     object    RSPtb_bristles                        \
  125.     end                                    \
  126.                                     \
  127. name RSPtb_brush                            \
  128.     union                                \
  129.     object RSPtb_handle                        \
  130.     union                                \
  131.         object RSPtb_extension                    \
  132.         object RSPtb_head                        \
  133.         translate                        \
  134.             (-0.2 - (0.4*tan(dtor*13)) + (5*cos(dtor*13)) + 1.0 -(0.2*tan(dtor*13)))    \
  135.             0 (-5*sin(dtor*13))                    \
  136.     end                                \
  137.     end                                    \
  138.                                     \
  139. prefix object surf RSPtb_brush
  140.  
  141. #define RSPsoapbar(prefix, surf)                    \
  142. RSProundedbox(name RSPsoap_tmp, -2, -1.25, -1.25, 2, 1.25, 1.25, 0.8)/* 0.7 -> 0.8 */\
  143.     scale    2 2 1                            \
  144.     RSTlightgray_marb(6,1,1)                    \
  145.         translate 0 0 -0.1                        \
  146. prefix object surf RSPsoap_tmp
  147.  
  148. #define RSPsoap_dish(prefix, surf)                    \
  149. name RSPsd_ridge                            \
  150.     list                                \
  151.     disc     0.5    0  4.5 0    0  1 0                \
  152.     cylinder 0.5    0  4.5 0    0 -4.5 0            \
  153.     disc     0.5    0 -4.5 0    0 -1 0                \
  154.     end                                    \
  155. name RSPsd_holder union                            \
  156.     union                                \
  157.     difference                            \
  158.         RSProundedbox(, -7, -4.5, -1, 7, 4.5, 1, 0.5)        \
  159.         RSProundedbox(, -6, -3.5, -2, 6, 3.5, 2, 0.9)        \
  160.         translate 0 0 2.25                    \
  161.     end                                \
  162.     list                                \
  163.         object RSPsd_ridge    translate  4 0 0.0            \
  164.         object RSPsd_ridge    translate  2 0 0.0            \
  165.         object RSPsd_ridge    translate  0 0 0.0            \
  166.         object RSPsd_ridge    translate -2 0 0.0            \
  167.         object RSPsd_ridge    translate -4 0 0.0            \
  168.     end                                \
  169.     end                                    \
  170.     box    5 0 -0.75    -5 0.5 0.75                    \
  171.     translate    0 -4.5 0                    \
  172. end                                    \
  173. prefix object surf RSPsd_holder
  174.  
  175. #define RSPsoap_and_dish(prefix, s_surf, d_surf)            \
  176. prefix list                                \
  177.     RSPsoap_dish(, d_surf)                        \
  178.     RSPsoapbar(, s_surf)                        \
  179.     rotate    0 0 1    -5                        \
  180.     translate -0.3 -0.2 (0.5 + 1.25)                \
  181. end
  182.  
  183. #define RSPglass(prefix, surf)                        \
  184. name RSPglass_tmp union                            \
  185.     torus 0.95 0.06 0 0 2 0 0 1                        \
  186.     difference                                \
  187.     list /* outer glass */                        \
  188.         cone 0.9 0 0 -0.001 1.0 0 0 2                \
  189.         disc 1 0 0 2 0 0 1                        \
  190.         disc 0.9 0 0 -.001 0 0 -1                    \
  191.     end                                \
  192.     list /* inner glass */                        \
  193.         cone 0.7 0 0 0.1   0.9 0 0 2.2                \
  194.         disc .9 0 0 2.2 0 0 1                    \
  195.         disc .7 0 0 0.1 0 0 -1                    \
  196.     end                                \
  197.     end                                    \
  198. end                                    \
  199.     texture bump 0.2 scale .2 .2 .2                    \
  200. prefix object surf RSPglass_tmp
  201.  
  202. #define RSPglass_holder(prefix, surf)                    \
  203. name RSPgh_unit_cyl                            \
  204.     list                                \
  205.     disc        1    0 0 1    0 0 1                \
  206.     cylinder    1    0 0 0    0 0 1                \
  207.     disc        1    0 0 0    0 0 -1                \
  208.     end                                    \
  209.                                     \
  210. name RSPgh_indent_big                            \
  211.     union                                \
  212.     object    RSPgh_unit_cyl                        \
  213.         scale    3.5 3.5 0.5                    \
  214.         translate    0 0 0.3                        \
  215.     union                                \
  216.         object    RSPgh_unit_cyl                    \
  217.         scale    3.2 3.2 0.4                    \
  218.         union                            \
  219.         torus    3.2 0.3        0 0 0.3        0 0 1        \
  220.         difference                        \
  221.             object    RSPgh_unit_cyl                \
  222.             scale    3.8 3.8 0.4                \
  223.             translate    0 0 0.7                \
  224.             torus    3.8 0.3    0 0 0.7        0 0 1        \
  225.         end                            \
  226.         end                                \
  227.     end                                \
  228.     end                                    \
  229.                                     \
  230. name RSPgl_indent_small                            \
  231.     union                                \
  232.     object    RSPgh_unit_cyl                        \
  233.         scale    0.6 0.6 3                    \
  234.         translate    0 0 -2.9                    \
  235.     difference                            \
  236.         object    RSPgh_unit_cyl                    \
  237.         scale    0.9 0.9 0.4                    \
  238.         torus    0.9 0.3        0 0 0    0 0 1            \
  239.     end                                \
  240.     end                                    \
  241.     translate    0 0 -0.3                    \
  242.                                     \
  243. name RSPgh_holes                            \
  244.     list                                \
  245.     object    RSPgh_indent_big                    \
  246.     object    RSPgl_indent_small                    \
  247.         translate    -5.5 -2.8 1                    \
  248.     object    RSPgl_indent_small                    \
  249.         translate     5.5 -2.8 1                    \
  250.     object    RSPgl_indent_small                    \
  251.         translate    -5.5  2.8 1                    \
  252.     object    RSPgl_indent_small                    \
  253.         translate     5.5  2.8 1                    \
  254.     end                                    \
  255.                                     \
  256. name RSPgh_holder                            \
  257.     union                                \
  258.     difference                            \
  259.         RSProundedbox(, -7, -4.5, -1, 7, 4.5, 1, 0.5)        \
  260.         object    RSPgh_holes                    \
  261.     end                                \
  262.     box    5 0 -0.75    -5 0.5 0.75                \
  263.         translate    0 -4.5 0                    \
  264.     end                                    \
  265.                                     \
  266. prefix object surf RSPgh_holder
  267.  
  268. #endif /* ifndef RSHF_CLEAN */
  269.